/**
 * @param {number[][]} increase
 * @param {number[][]} requirements
 * @return {number[]}
 */
 var getTriggerTime = function(increase, requirements) {
    function bisearch(val,source){
        let l=0,r=source.length-1;
        while(l<r){
            let mid=Math.floor((l+r)/2);
            if(source[mid]>=val){
                r=mid;
            }
            else{
                l=mid+1;
            }
        }
        return source[l]>=val ? l:l+1;
    }
    let n=increase.length+1
    let xl=new Array(n).fill(0);
    let yl=new Array(n).fill(0);
    let zl=new Array(n).fill(0);
    increase.forEach(([x,y,z],index) => {
        xl[index+1]=xl[index]+x;
        yl[index+1]=yl[index]+y;
        zl[index+1]=zl[index]+z;
    })
    let ret=new Array();
    for(let [x,y,z] of requirements){
        let a=Math.max(bisearch(x,xl),bisearch(y,yl),bisearch(z,zl));
        ret.push( a==n ? -1:a);
    }
    return ret;
};

console.log(getTriggerTime([[0,4,5],[4,8,8],[8,6,1],[10,10,0]],[[0,0,0],[12,11,16],[20,2,6],[9,2,6],[10,18,3],[8,14,9]]))

// 执行用时：
// 408 ms
// , 在所有 JavaScript 提交中击败了
// 57.89%
// 的用户
// 内存消耗：
// 75.8 MB
// , 在所有 JavaScript 提交中击败了
// 84.21%
// 的用户